Package Back
Class Node<T extends java.io.Serializable & java.lang.Comparable<T>>
- java.lang.Object
-
- Back.Node<T>
-
-
Constructor Summary
Constructors Constructor Description Node()prazdny konstruktor, hodnota je null, potomkovia prazdny ArrayListNode(java.util.Scanner s)konstruktor ktory sa vyuziva pri citani stromu z JSON suboruNode(T value, java.util.List<Node<T>> sons)konstruktor nastavi hodnotu, potomkov a _find a _add ktore sa vyuzivaju pri animacii
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description doublebalance()najde najvacsieho syna, vypocita priemernu odchylku ostatnych synov od nehointcompareTo(Node<T> node)zavola private metodu compare ktora ma 2 Ostatne.Node parametre do ktorych vlozi this a parameter node priv metoda porovnava hodnoty v preorder poradi null je mensi ako hodnotabooleancontains(T elem)hlada v strome vrchol s danou hodnotou, ak hodnota nie je null, porovna ich inac porovna ci je aj hladana hodnota nullbooleanequals(java.lang.Object o)vrati hodnost triedy a hodnotyNode<T>findByNode(Node<T> node)zavola funkciu findFather ak vrati null - vrchol sa v strome nenachadza vracia null ak vrati Ostatne.Node - vojde do jeho synov, najde pozadovany vrchol ktory vratiNode<T>findByValue(T val)urobi vrchol s touto hodnotou, zavola rovnaku funkciu s parametrom ktory je vrcholNode<T>findFatherByNode(Node<T> n)rekurzivne prechadza strom, kontroluje ci sa dany vrchol nachadza u niekoho v synoch, ak ano tak ho vratiNode<T>findFatherByValue(T val)urobi vrchol s touto hodnotou, zavola rovnaku funkciu s parametrom ktory je vrcholbooleangetAdd()java.util.List<java.util.ArrayList<Node<T>>>getByLevels()booleangetFind()java.lang.StringgetJSon(int odsadenie)java.util.List<Node<T>>getSons()TgetValue()inthashCode()intheight()voidinsertNode(int i, Node<T> node)urobi vlozi Ostatne.Node do synov na urcene miestbooleanjoin(Node<T> node)v podstrome rekurzivne vyhlada ci sa pozadovany vrchol nachadza niekde v podstrome ak ano, tak zavola privatnu funkciu ktora rekurzivne prida nove vrcholystatic voidmain(java.lang.String[] args)booleanmove(T _which, T _where)pomocou parametrov najde "smerniky" na vrcholy s ktorymi sa bude pracovat, nasledne vrcholu _where prida do synov vrchol _which ktory odstrani z povodneho miestajava.lang.Stringprint()booleanremove(T val)z hodnoty vytvori vrchol ktoremu nasledne v podstrome rekurzivne vyhladava otca, ak existuje,konstruktor tento vrchol mu odstrani zo synov, inac skontroluje ci sa nejedna o aktualny vrchol vtom pripade si vynuluje hodnotu a synovvoidremoveNode(Node<T> node)voidsetAdd(boolean add)nastavenie _addvoidsetFind(boolean find)nastavenie _findvoidsetSons(java.util.List<Node<T>> sons)nastavuje synov vrcholuvoidsetValue(T value)nastavuje hodnotu vrcholuintsize()java.lang.StringtoString()
-
-
-
Constructor Detail
-
Node
public Node(T value, java.util.List<Node<T>> sons)
konstruktor nastavi hodnotu, potomkov a _find a _add ktore sa vyuzivaju pri animacii- Parameters:
value- hodnota vrcholusons- list potomkov - ak null nastavi sa na prazdny ArrayList
-
Node
public Node()
prazdny konstruktor, hodnota je null, potomkovia prazdny ArrayList
-
Node
public Node(java.util.Scanner s)
konstruktor ktory sa vyuziva pri citani stromu z JSON suboru- Parameters:
s- scanner z ktoreho sa rekurzivne citaju udaje
-
-
Method Detail
-
getFind
public boolean getFind()
- Returns:
- vracia premennu _find s ktorou pracuje animacia
-
setFind
public void setFind(boolean find)
nastavenie _find- Parameters:
find- prideli sa do _find
-
getAdd
public boolean getAdd()
- Returns:
- vracia premennu _add s ktorou pracuje animacia
-
setAdd
public void setAdd(boolean add)
nastavenie _add- Parameters:
add- prideli sa do _add
-
insertNode
public void insertNode(int i, Node<T> node)urobi vlozi Ostatne.Node do synov na urcene miest- Parameters:
i- pozicia kde sa ma Ostatne.Node vlozitnode- Ostatne.Node ktory bude vkladany
-
getValue
public T getValue()
- Returns:
- vrati hodnoru vrcholu
-
setValue
public void setValue(T value)
nastavuje hodnotu vrcholu- Parameters:
value- hodnota ktora sa priradi
-
setSons
public void setSons(java.util.List<Node<T>> sons)
nastavuje synov vrcholu- Parameters:
sons- list ktory sa priradi
-
size
public int size()
- Returns:
- vracia pocet vsetkych podvrcholov + seba
-
height
public int height()
- Returns:
- vrati vysku stromu
-
balance
public double balance()
najde najvacsieho syna, vypocita priemernu odchylku ostatnych synov od neho- Returns:
- odchylka velkosti
-
join
public boolean join(Node<T> node)
v podstrome rekurzivne vyhlada ci sa pozadovany vrchol nachadza niekde v podstrome ak ano, tak zavola privatnu funkciu ktora rekurzivne prida nove vrcholy- Parameters:
node- vrchol ktory ideme pripajat- Returns:
- ak je node null alebo sa nenachadza v podstrome vrati false inac true
-
remove
public boolean remove(T val)
z hodnoty vytvori vrchol ktoremu nasledne v podstrome rekurzivne vyhladava otca, ak existuje,konstruktor tento vrchol mu odstrani zo synov, inac skontroluje ci sa nejedna o aktualny vrchol vtom pripade si vynuluje hodnotu a synov- Parameters:
val- hodnota vrcholu ktory ideme odstranit- Returns:
- ak otec neexistuje vrati false, inac true
-
move
public boolean move(T _which, T _where)
pomocou parametrov najde "smerniky" na vrcholy s ktorymi sa bude pracovat, nasledne vrcholu _where prida do synov vrchol _which ktory odstrani z povodneho miesta- Parameters:
_where- hodnota vrcholu ktoremu sa bude pridavat syn_which- hodnota vrcholu ktory sa bude premiestnovat- Returns:
- ak sa v strome nenachadza vrchol s tymito hodnotami vracia false inac true
-
contains
public boolean contains(T elem)
hlada v strome vrchol s danou hodnotou, ak hodnota nie je null, porovna ich inac porovna ci je aj hladana hodnota null- Parameters:
elem- hladana hodnota- Returns:
- true ak sa v strome nachadza vrchol s touto hodnotou inac false
-
findFatherByValue
public Node<T> findFatherByValue(T val)
urobi vrchol s touto hodnotou, zavola rovnaku funkciu s parametrom ktory je vrchol- Parameters:
val- hladana hodnota- Returns:
- ak sa v strome nachadza vrchol s touto hodnotou tak ho vrati jeho otca inac vrati null
-
findFatherByNode
public Node<T> findFatherByNode(Node<T> n)
rekurzivne prechadza strom, kontroluje ci sa dany vrchol nachadza u niekoho v synoch, ak ano tak ho vrati- Parameters:
n- hladany vrchol- Returns:
- otec hladaneho vrcholu ak sa nachadza inac vrati null
-
findByValue
public Node<T> findByValue(T val)
urobi vrchol s touto hodnotou, zavola rovnaku funkciu s parametrom ktory je vrchol- Parameters:
val- hladana hodnota- Returns:
- vrchol s pozadovanou hodnotou ak sa nachadza inac null
-
findByNode
public Node<T> findByNode(Node<T> node)
zavola funkciu findFather ak vrati null - vrchol sa v strome nenachadza vracia null ak vrati Ostatne.Node - vojde do jeho synov, najde pozadovany vrchol ktory vrati- Parameters:
node- hladany vrchol- Returns:
- vrchol s pozadovanou hodnotou ak sa nachadza inac null
-
getByLevels
public java.util.List<java.util.ArrayList<Node<T>>> getByLevels()
- Returns:
- vrati list listov, kde jeden list reprezentuje jednu uroven stromu
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object- Returns:
- vrati hash vrcholu
-
equals
public boolean equals(java.lang.Object o)
vrati hodnost triedy a hodnoty- Overrides:
equalsin classjava.lang.Object- Returns:
- true ak o je rovnakej triedy a hodnoty sa rovnaju, inak false
-
compareTo
public int compareTo(Node<T> node)
zavola private metodu compare ktora ma 2 Ostatne.Node parametre do ktorych vlozi this a parameter node priv metoda porovnava hodnoty v preorder poradi null je mensi ako hodnota
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object- Returns:
- vrati hodnotu premenenu na string po odkomentovani vypisuje rekurzivne aj podstrom vo formate this( son1( son11( .. ), .. ), son2( .. ), .. ))
-
print
public java.lang.String print()
- Returns:
- vratis strom v tvare: this --> son1 --> son11 --> son12 --> son2
-
getJSon
public java.lang.String getJSon(int odsadenie)
- Parameters:
odsadenie- aby to pekne vyzeralo, pouziva sa odsadenie- Returns:
- vrati String stromu ktory je prisposobeny na ukladanie do JSONu
-
main
public static void main(java.lang.String[] args)
-
-